Skip to content

docs(external-apps): rewrite guide for ApplicationDefinition API#488

Merged
kitsunoff merged 1 commit intocozystack:mainfrom
kitsunoff:docs/update-external-apps-guide
Apr 15, 2026
Merged

docs(external-apps): rewrite guide for ApplicationDefinition API#488
kitsunoff merged 1 commit intocozystack:mainfrom
kitsunoff:docs/update-external-apps-guide

Conversation

@kitsunoff
Copy link
Copy Markdown
Contributor

@kitsunoff kitsunoff commented Apr 14, 2026

Summary

Rewrite the external applications guide to reflect the current API and conventions:

  • Replace outdated CozystackResourceDefinition references with ApplicationDefinition
  • Document the full platform chart structure (namespaces, HelmCharts, operator deployment, ApplicationDefinitions)
  • Add naming conventions table matching the main Cozystack repository
  • Document application chart structure and Makefile conventions
  • Update bootstrap manifest to use reconcileStrategy: Revision

Context

The previous guide only covered creating a GitRepository + HelmRelease and pointed to the example repo for everything else. The rewrite provides a self-contained reference for building external application packages, based on conventions from the main Cozystack repository and the updated external-apps-example.

Summary by CodeRabbit

  • Documentation
    • Updated external application package repository structure and setup guidelines.
    • Enhanced deployment instructions with improved FluxCD configuration and reconciliation strategy details.
    • Added comprehensive chart authoring instructions and ApplicationDefinition examples.

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 14, 2026

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit 0658772
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/69dfa0cc9f85b00008f37d49
😎 Deploy Preview https://deploy-preview-488--cozystack.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 14, 2026

Warning

Rate limit exceeded

@kitsunoff has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 56 minutes and 29 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 56 minutes and 29 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5d2717dc-1908-4032-8b2d-a15df3def7d8

📥 Commits

Reviewing files that changed from the base of the PR and between 79b398c and 0cdc544.

📒 Files selected for processing (1)
  • content/en/docs/v1/applications/external.md
📝 Walkthrough

Walkthrough

Documentation rewrite specifying external application package repository layout with init.yaml, packages/core/platform for platform charts, per-application charts under packages/apps/<app-name>, and detailed guidance on platform chart responsibilities, chart authoring, and FluxCD bootstrap configuration.

Changes

Cohort / File(s) Summary
Documentation Restructuring
content/en/docs/v1/applications/external.md
Comprehensive rewrite replacing step-by-step manifest application instructions with detailed repository structure, platform chart responsibilities (namespace creation, HelmChart resources with reconcileStrategy: Revision, operator deployment), chart authoring specifications (Chart.yaml, Makefile, values.schema.json), and ApplicationDefinition examples. Updated bootstrap guidance from version: '*' to reconcileStrategy: Revision.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A new structure hops into place,
With charts and packages finding their grace,
Init.yaml guides the way,
FluxCD reconciles each day,
External apps in their own space! 📦

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: rewriting the external applications guide to use the ApplicationDefinition API instead of outdated approaches.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@kitsunoff kitsunoff marked this pull request as ready for review April 14, 2026 18:36
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request rewrites the external applications guide to align with current APIs and conventions, covering repository structure, platform charts, and naming conventions. Feedback suggests adding the scripts/ directory to the repository layout, removing redundant entries in the keysOrder example, and correcting the documentation regarding supported JSON Schema keywords in Kubernetes.

Comment on lines +20 to +23
init.yaml # Bootstrap manifest (GitRepository + HelmRelease)
packages/
core/platform/ # Platform chart: namespaces, operators, HelmCharts, ApplicationDefinitions
apps/<app-name>/ # Helm chart for each user-installable application
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The repository structure diagram is missing the scripts/ directory, which is referenced in the Makefile example later in the guide (include ../../../scripts/package.mk). Adding it here provides better context for the reader.

Comment on lines +135 to +137
- - metadata
- - metadata
- name
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The metadata entry is redundant here as it is repeated on the next line with a sub-field. In keysOrder, specifying the parent object and then the specific field within it is usually unnecessary unless the UI specifically requires both to be ordered independently.

| `release.prefix` | `<metadata.name>-` | `my-app-` |
| `openAPISchema` title | always `"Chart Values"` | — |

The `openAPISchema` field contains a single-line JSON string with the schema for the application values. It intentionally omits `allOf`/`if`/`then` conditional rules because Kubernetes `apiextensions/v1` `JSONSchemaProps` does not support these keywords. Use conditional validation only in the Helm chart's `values.schema.json`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Technically, apiextensions/v1 JSONSchemaProps does support allOf, anyOf, oneOf, and not. It is if, then, and else (introduced in JSON Schema Draft 7) that are not supported in Kubernetes structural schemas. It might be worth clarifying this to avoid misleading users who might want to use allOf for schema composition.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/en/docs/v1/applications/external.md`:
- Line 153: Update the explanatory sentence about openAPISchema to stop listing
"allOf" as unsupported: edit the paragraph referencing the `openAPISchema` field
so it only states that the conditional keywords `if`/`then`/`else` are
unsupported by Kubernetes `apiextensions/v1` `JSONSchemaProps` (remove `allOf`
from the unsupported keywords list) and clarify that `allOf` is supported; keep
the note that conditional validation should be used in the Helm chart's
`values.schema.json`.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2425e44f-5392-4c78-8cec-f2c25383cef2

📥 Commits

Reviewing files that changed from the base of the PR and between 1d856cd and 79b398c.

📒 Files selected for processing (1)
  • content/en/docs/v1/applications/external.md

Comment thread content/en/docs/v1/applications/external.md Outdated
Update the external applications guide to reflect the current API
and conventions used in the external-apps-example repository:

- Replace outdated CozystackResourceDefinition references with
  ApplicationDefinition
- Document the full platform chart structure (namespaces, HelmCharts,
  operator deployment, ApplicationDefinitions)
- Add naming conventions table matching the main Cozystack repository
- Document application chart structure and Makefile conventions
- Update bootstrap manifest to use reconcileStrategy: Revision
- Add HelmChart FluxCD reference link

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: ZverGuy <maximbel2003@gmail.com>
@kitsunoff kitsunoff force-pushed the docs/update-external-apps-guide branch from 0cdc544 to 0658772 Compare April 15, 2026 14:29
@kitsunoff kitsunoff merged commit 937014d into cozystack:main Apr 15, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants